package com.hfy.pcberpbackend.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hfy.pcberpbackend.entity.Quote;
import com.hfy.pcberpbackend.dto.*;
import com.hfy.pcberpbackend.common.PageResult;

import java.util.List;

/**
 * 报价单Service接口
 */
public interface QuoteService extends IService<Quote> {
    
    /**
     * 分页查询报价单列表
     */
    PageResult<QuoteVO> getQuotePage(QuoteQueryDTO query);
    
    /**
     * 分页查询报价记录列表
     */
    PageResult<QuoteVO> getQuoteRecordPage(QuoteQueryDTO query);
    
    /**
     * 根据ID获取报价单详情
     */
    QuoteVO getQuoteById(Long id);
    
    /**
     * 新增报价单（草稿状态）
     */
    Long createQuote(QuoteCreateDTO createDTO, String operator);
    
    /**
     * 更新报价单
     */
    void updateQuote(QuoteUpdateDTO updateDTO, String operator);
    
    /**
     * 提交报价单
     */
    void submitQuote(Long id, String operator);
    
    /**
     * 批准报价单
     */
    void approveQuote(Long id, String reason, String operator);
    
    /**
     * 拒绝报价单
     */
    void rejectQuote(Long id, String reason, String operator);
    
    /**
     * 删除报价单
     */
    void deleteQuote(Long id);
    
    /**
     * 批量删除报价单
     */
    void batchDeleteQuotes(List<Long> ids);
    
    /**
     * 复制报价单
     */
    Long copyQuote(Long id, String operator);
    
    /**
     * 生成报价单编号
     */
    String generateQuoteCode();
} 